能让你在使用MyBatis时提高100倍效率的开源框架引擎
大家好,我是TJ
关注TJ君,回复“武功秘籍”免费获取计算机宝典书籍
TJ君将之前发过的各种项目及工具进行了整理,收录到了GitHub项目,欢迎各位小伙伴光临Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU
今天TJ君要给大家介绍一个框架引擎,可能会让你在使用MyBatis时的效率提高个、十、百,对,提高100倍这么多!
Bean Searcher
Bean Searcher是一个专注高级查询的只读ORM,天生支持联表,免 DTO/VO 转换,只要使用得当,一行代码实现复杂列表检索将会成为可能,不再是梦想~
截止目前为止,Bean Searcher主要支持的特点有:
支持 实体多表映射 支持 动态字段运算符 支持 分组聚合 查询 支持 Select | Where | From 子查询 支持 实体类嵌入参数 支持 字段转换器 支持 Sql 拦截器 支持 数据库 Dialect 扩展 支持 多数据源 与 动态数据源 支持 注解缺省 与 自定义 支持 字段运算符 扩展
其架构图详解如下:
更简单直接的说,Bean Searcher就是一个轻量级的数据库条件检索引擎,其作用是从已有的数据库表中检索数据,最终目的是为了减少后端模板代码的开发,极大提高开发效率,节省开发时间。
当然,TJ君的理解是,Bean Searcher并不是单纯的为了替换MyBatis,而是在最合适它的场景下让用户的使用更便捷更高效。
例如一些非事务性的动态检索场景,就是非常适合Bean Searcher的发挥,就好比管理后台的用户管理等检索场景,实际运作中是不会向数据库中插入数据的,并且其检索条件是动态的,用户检索方式不同,执行的SQL也不同,就比较适合Bean Searcher了。
如果小伙伴再深入使用一段时间,除了之前说的那些特点,你会发现Bean Searcher可能还有这些优点:
极速开发
轻松实现高级查询,且无需 DTO/VO 转换, 极大提高后端研发效率
集成简单
可以和任意 Java Web 框架集成,如:SpringBoot、Grails、Jfinal 等
扩展性强
面向接口设计,用户可自定义扩展 Bean Searcher 中的任何组件
支持 注解缺省
约定优于配置,可省略注解,可复用原有域类,同时支持自定义注解
支持 Select 指定字段 同一个实体类,可指定只 Select 其中的某些字段,或排除某些字段
支持 参数过滤器
支持添加多个参数过滤器,可自定义参数过滤规则
支持 字段转换器
支持添加多个字段转换器,可自定义数据库字段到实体类字段的转换规则
支持 SQL 拦截器
支持添加多个 SQL 拦截器,可自定义 SQL 生成规则
最后,我们可以看下Bean Searcher 最简单的一行代码示例:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private BeanSearcher searcher; // 注入 Bean Searcher 的检索器
@GetMapping("/index")
public SearchResult<User> index(HttpServletRequest request) {
// 只一行代码,实现包含 分页、组合过滤、任意字段排序、甚至统计、多表联查的 复杂检索功能
return searcher.search(User.class, MapUtils.flat(request.getParameterMap()));
}
}
觉得不错的小伙伴,不妨来试试看哦!
点击下方卡片,关注公众号“TJ君”
回复“BS2022”,获取仓库地址
关注我,每天了解一个牛x、好用、有趣的东东